package com.vhall.component.entity.room.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.vhall.component.framework.common.annotation.ParamName;
import lombok.Data;

import javax.validation.constraints.Pattern;
import java.io.Serializable;

/**
 * @author shimingming
 * @since 2023/6/15 13:49
 */
@Data
public class ThirdRoomInfoReqVO implements Serializable {
    /**
     * 开始时间 2022-02-01 10:00:00
     */
    @ParamName("start_time")
    @JsonProperty("start_time")
    @Pattern(regexp = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]+|[0-9]+[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$", message = "时间格式为 2017-01-01 08:00:00")
    private String beginTime;

    /**
     * 结束时间 2022-02-01 10:00:00
     */
    @ParamName("end_time")
    @JsonProperty("end_time")
    @Pattern(regexp = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]+|[0-9]+[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$", message = "时间格式为 2017-01-01 08:00:00")
    private String endTime;

    /**
     * 当前页，默认为第一页
     */
    @ParamName("page")
    @JsonProperty("page")
    private Integer page = 1;

    /**
     * 每页数量，默认为10
     */
    @ParamName("page_size")
    @JsonProperty("page_size")
    private Integer pageSize = 10;
}
